package ms.core.gateway.request;

import java.util.Map;

import lombok.Data;
import ms.core.common.AppException;
import ms.core.common.consts.SysErr;
import ms.core.gateway.bean.SysRoleBean;
import ms.core.gateway.tool.SessionTool;
import ms.core.tool.JsonTool;
import ms.core.tool.StrTool;

@Data
public class CreateRoleRequest {
	private String roleName;		// 角色名称
	private String corpUid;			// 企业Id
	private String remark;			// 备注
	private int root;				// 是否主角色. 0-子角色;1-主角色
	
	public static CreateRoleRequest getInstance(Map<String, Object> body, String sid) {
		CreateRoleRequest role = JsonTool.objectToBean(body, CreateRoleRequest.class);
		if (role==null)
			throw new AppException(SysErr.SYS_PARAM_ERR);

		if (role.getRoot()<SysRoleBean.ROLE_CHILD || role.getRoot()>SysRoleBean.ROLE_ROOT)
			throw new AppException(SysErr.SYS_PARAM_ERR, "角色类型错误.");
			
		if (!SessionTool.isSuperCorp(sid) || StrTool.isBlank(role.getCorpUid()))
			role.setCorpUid(SessionTool.getCorpUid(sid));

		if (StrTool.isBlank(role.getRoleName()))
			throw new AppException(SysErr.SYS_PARAM_ERR, "角色名不可空");

		return role;
	}
}